using System.Collections.ObjectModel;
using System.Linq;
using System.Windows.Controls;
using CharacterCreation.Views;
using CharacterCreation.Views.Contracts;
using Microsoft.Practices.Prism.ViewModel;

namespace CharacterCreation {
    public partial class MainViewModel : NotificationObject {
        
        /// <summary>
        /// Gets or sets the HostViews
        /// </summary>
        public ObservableCollection<BaseHostView> HostViews {
            get { return _HostViews; }
            set {
                _HostViews = value;
                this.SelectedView = _HostViews.First();
                RaisePropertyChanged("HostViews");
            }
        }
        private ObservableCollection<BaseHostView> _HostViews;
        
        /// <summary>
        /// Gets or sets the SelectedView
        /// </summary>
        public BaseHostView SelectedView {
            get { return _SelectedView; }
            set {
                _SelectedView = value;
                RaisePropertyChanged("SelectedView");
            }
        }
        private BaseHostView _SelectedView;
        
        /// <summary>
        /// Constructor
        /// </summary>
        public MainViewModel() {
            this.HostViews = new ObservableCollection<BaseHostView>() {
                new HomeView(), new CharacterHostView(), new SkillHostView(), new RaceHostView(), new SpecialsHostView(), new StatisticsHostView()
            };
        }


    }
}